"""
1. 概念(what)
    掌握使用unittest结合插件生成测试报告
2. 工作(why/where)

3. 语法(how)
    1. HTMLTestRunnerPlugins.py文件方法python/Lib/site-packages目录中
    2. 确定用例文件路径和报告存放路径
    3. 生成测试套件
    4. 执行测试生成报告

"""

import unittest
import os
import time
import HTMLTestRunnerPlugins
from Case.test_08_generate_order import TestGenerateOrder
from Case.test_09_back_order import TestBackOrder

# 1. 确定用例文件路径和报告存放路径
base_path = os.path.dirname(__file__)  # 项目路径
case_path = os.path.join(base_path, 'Case')  # 用例路径
report_path = os.path.join(base_path, 'Report')  # 报告路径
now = time.strftime('%Y-%m-%d %H-%M-%S')  # 格式化当前时间

report_name = now + 'HTMLReport.html'  # 测试报告名称  window系统中文件/文件夹中名称不能有:/.....

report_file_path = os.path.join(report_path, report_name)  # 测试报告文件路径

# 2. 生成测试套件
suite = unittest.TestSuite()
suite.addTests(map(TestGenerateOrder,['test_01_generate_order','test_02_generate_order','test_03_generate_order']))
suite.addTests(map(TestBackOrder,['test_01_back_order','test_02_back_order']))
# 3. 执行测试并生成报告
with open(report_file_path, 'wb') as fp:
    runner = HTMLTestRunnerPlugins.HTMLTestRunner(
        stream=fp,  # 报告文件
        title='xxx项目自动化测试报告',  # 报告标题
        description='xxx项目页面自动化测试',  # 报告描述
        tester='靓仔'  # 测试人员
    )
    runner.run(suite)
